1、圆圈中最后剩下的数?
思想：倒推，求出剩下数的下标，因为剩下的数在最后一次下标为0，向上推，利用(index+m)%i;
class Solution {
public:
    int LastRemaining_Solution(int n, int m) {
        if(n<=0)
            return -1;
        int x=0;
        for(int i=2;i<=n;i++)
        {
            x=(x+m)%i;
        }
        return x;
    }
};

2、平衡二叉树
思想：就是判断每个节点的只有子树高度差是否小于1，注意：是每一个节点
class Solution {
public:
    
    int heigh(TreeNode* pRoot)
    {
        if(pRoot==nullptr)
            return 0;
        int left=1+heigh(pRoot->left);
        int right=1+heigh(pRoot->right);
        return max(left,right);
    }
    bool IsBalanced_Solution(TreeNode* pRoot) {
        if(pRoot==nullptr)
            return true;
        int left=heigh(pRoot->left);
        int right=heigh(pRoot->right);
        int ret=abs(left-right);
        //记住一点，得保证每个节点的左右子树都是平衡的
        return ret<=1&&IsBalanced_Solution(pRoot->left)&&IsBalanced_Solution(pRoot->right);
    }
};

